#define _CRT_SECURE_NO_WARNINGS 2

#include<iostream>

using namespace std;

template<class T>
class B {
public:
	T _b ;
};

template<class T>
class A {
public:
	typedef typename B<T> B;

public:
	A()
	{

	}

	A(const A<T>& key)
		:_a(key._a)
	{}
protected:
	B _a ;
};

int main() {
	B<int> b;
	A<int> a;
	A<int> aa(a);
	return 0;
}